//package cn.datawin.cmppclient.entity;
//
//import cn.datawin.cmppclient.sender.service.AbstractTcpSenderService;
//import cn.datawin.cmppclient.sender.service.CmppService;
//import org.apache.commons.lang3.StringUtils;
//
//import java.util.Arrays;
//
///**
// * 通讯协议
// *
// * @author volcano
// * @version V1.0
// * @date 2019年9月12日下午11:16:40
// */
//public enum ProtocolType {
//
//    CMPP2(CmppService.class),
//
//    CMPP3(CmppService.class),
//
//    CMPP(CmppService.class);
//
//    private String value;
//    private Class<? extends AbstractTcpSenderService> senderServiceClasze;
//
//    private ProtocolType() {
//        this.value = this.name().toLowerCase();
//    }
//
//    private ProtocolType(Class<? extends AbstractTcpSenderService> clasze) {
//        this();
//        this.senderServiceClasze = clasze;
//    }
//
//    public static Class<? extends AbstractTcpSenderService> getSenderServiceClasze(String protocolTypeValue) {
//        //聪明jdk如果有findFirst,在检查到第一条记录的时候,循环就会退出
//        ProtocolType protocolType = Arrays.asList(ProtocolType.values()).stream().filter(item -> {
//            return item.toString().equalsIgnoreCase(protocolTypeValue);
//        }).findFirst().orElseGet(null);
//        if (protocolType == null) {
//            return null;
//        }
//        return protocolType.getSenderServiceClasze();
//    }
//
//    public Class<? extends AbstractTcpSenderService> getSenderServiceClasze() {
//        return this.senderServiceClasze;
//    }
//
//    @Override
//    public String toString() {
//        return value;
//    }
//
//    public boolean equals(String value) {
//        if (StringUtils.isEmpty(value)) {
//            return false;
//        }
//        return this.value.equalsIgnoreCase(value);
//    }
//}
